System and method for managing relationships by identifying relevant content and generating correspondence based thereon

ABSTRACT

Systems and methods for managing contacts and generating communications with relevant content are disclosed herein. In an embodiment, a system for generating correspondence with one or more contact includes a central server with at least a processor and a memory. The central server is configured to communicate with a user terminal and a plurality of content sources. The processor is configured to execute instructions stored on the memory to cause the central server to: (i) determine at least one keyword relevant to at least one contact based on at least one contact input entered using the user terminal; (ii) use the at least one keyword to identify relevant content from the plurality of content sources; (iii) calculate at least one value for the relevant content; and (iv) generate a suggested communication to be displayed for the user on the user terminal when the at least one value meets a threshold.

PRIORITY

This patent application claims priority to U.S. Provisional PatentApplication No. 62/884,654, filed Aug. 8, 2019, entitled “RelationshipManagement Tool Incorporating Contact Recommendation,” the entirety ofwhich is incorporated herein by reference and relied upon.

BACKGROUND Technical Field

This disclosure generally relates to a system and method for managingcontact relationships. More specifically, the present disclosure relatesto a system and method for identifying optimal content for a contact andautomatically generating correspondence based thereon.

Background Information

Various relationship management tools, such as customer relationshipmanagement (CRM) tools, typically permit a first party to a relationshipto store and manipulate basic information about a second party to therelationship (e.g., business organizations and/or individual people),thereby permitting the first party to improve the relationships with thesecond party, often in the form of improved customer experiences,customer retention, etc. Examples of such existing CRM tools includeSalesforce, HubSpot, and Pipedrive. While such CRM tools offersignificant features, they are often most adept at capturing andanalyzing past interactions between parties rather than providingcapabilities for proactively providing opportunities to strengthenrelationships. More particularly, such CRM tools fail to provide theability to identify content of potential interest to the parties of agiven relationship, nor the ability to readily communicate such content.

SUMMARY

It has been discovered that tools for optimizing professional servicesresources are desired. A first aspect of the present disclosure is toprovide a system for generating correspondence with one or more contact.The system can include a central server including at least a processorand a memory. The central server is configured to communicate with auser terminal and a plurality of content sources. The user terminal isconfigured to accept, from a user, at least one contact input regardingat least one contact. The plurality of content sources are controlled bya plurality of third parties and include potential content of interestto the contact. The processor is configured to execute instructionsstored on the memory to cause the central server to: (i) determine atleast one keyword relevant to the at least one contact based on the atleast one contact input; (ii) use the at least one keyword to identifyrelevant content from the plurality of content sources; (iii) calculateat least one value for the relevant content; and (iv) generate asuggested communication to be displayed for the user on the userterminal when the at least one value meets a threshold.

In accordance with a second aspect of the present disclosure, which canbe combined with the first aspect, the at least one contact inputrelates to the at least one contact's professional or personalinformation.

In accordance with a third aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, determiningthe at least one keyword includes generation of a keyword algorithmusing the at least one keyword, and identifying the relevant contentincludes applying the keyword algorithm to the plurality of contentsources.

In accordance with a fourth aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, calculatingthe at least one value includes performing a calculation using an inputbased on a time since last working engagement with the at least onecontact.

In accordance with a fifth aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, the time sincelast working engagement is a variable which varies linearly with timeuntil reaching a maximum value.

In accordance with a sixth aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, calculatingthe at least one value includes performing a calculation using an inputbased on an age of relationship between the user and the at least onecontact.

In accordance with a seventh aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, the age of therelationship is a variable which varies sinusoidally over time once aminimum threshold has been reached.

In accordance with an eighth aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, the userterminal includes a digital calendar, and calculating the at least onevalue includes performing a calculation using an input based an amountof time since a communication between the user and the at least onecontact as determined from the digital calendar.

In accordance with a ninth aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, calculatingthe at least one value includes summing a plurality of variables basedon a relationship between the user and the at least one contact.

In accordance with a tenth aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, calculatingthe at least one value includes multiplication of a value based onweighted keywords.

In accordance with an eleventh aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects, a methodof generating correspondence with one or more contact is provided. Themethod includes determining at least one keyword relevant to at leastone contact based on at least one interest of the at least one contact,identifying relevant content from a plurality of content sources basedon the at least one keyword, calculating at least one value for therelevant content, and generating a suggested communication to betransmitted to the at least one contact when the at least one valuemeets a threshold.

In accordance with a twelfth aspect of the present disclosure, which canbe combined with any one or more of the previous aspects, determiningthe at least one keyword includes generating a keyword algorithm usingthe at least one keyword, and identifying the relevant content includesapplying the keyword algorithm to the plurality of content sources.

In accordance with a thirteenth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects,calculating the at least one value includes using an input based on atime since last working engagement with the at least one contact, andthe time since last working engagement is calculated using a variablewhich varies linearly with time until reaching a maximum value.

In accordance with a fourteenth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects,calculating the at least one value includes using an input based on anage of relationship between the user and the at least one contact, andthe age of relationship is calculated using a variable which variessinusoidally over time once a minimum threshold has been reached.

In accordance with a fifteenth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects,calculating the at least one value includes accessing a digital calendarand using an input based on the digital calendar.

In accordance with a sixteenth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects,calculating the at least one value includes summing a plurality ofvariables based on the relationship between the user and the at leastone contact.

In accordance with a seventeenth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects,calculating the at least one value includes multiplication of a valuebased on weighted keywords.

In accordance with an eighteenth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects, a methodof developing relevant content for one or more contact is provided. Themethod includes receiving at least one input related to at least onecontact, accessing public information related to the at least onecontact, creating at least one keyword algorithm specific to the atleast one contact by processing the at least one input and the publicinformation using a pretrained model, identifying relevant content forthe at least one contact by examining a plurality of content sourcesusing the at least one keyword algorithm, and generating a suggestedcommunication to be transmitted to the at least one contact based on acalculation using at least one value determined based on the keywordalgorithm

In accordance with a nineteenth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects,identifying the relevant content includes identifying a plurality ofpieces of relevant content, and the method further includes ranking theplurality of pieces of relevant content based on the calculation usingthe at least one value determined based on the keyword algorithm.

In accordance with a twentieth aspect of the present disclosure, whichcan be combined with any one or more of the previous aspects, the methodincludes displaying the suggested communication on a user terminal, andenabling a user of the user terminal to edit and send the suggestedcommunication to the at least one client.

BRIEF DESCRIPTION OF THE DRAWINGS

Referring now to the attached drawings which form a part of thisoriginal disclosure:

FIG. 1 illustrates an example embodiment of a system for managing andmaintaining contact relationships in accordance with the presentdisclosure;

FIG. 2 is a representative diagram of an example embodiment of a userterminal or a contact terminal which can be used in the system of FIG.1;

FIG. 3 is an example embodiment of a functional block diagramillustrating the systems and methods of the present disclosure;

FIG. 4 illustrates an example embodiment of a method for creating orediting a profile and executing a keyword extraction algorithm using thesystem of FIG. 1; and

FIG. 5 illustrates an example embodiment of a graphical user interfacewhich can be displayed on a user terminal using the system of FIG. 1.

DETAILED DESCRIPTION OF EMBODIMENTS

Selected embodiments will now be explained with reference to thedrawings. It will be apparent to those skilled in the art from thisdisclosure that the following descriptions of the embodiments areprovided for illustration only and not for the purpose of limiting theinvention as defined by the appended claims and their equivalents.

FIG. 1 illustrates an example embodiment of a system 10 for managingrelationships. In the illustrated embodiment, the system 10 includes acentral server 12 and one or more user terminals 14 operated by one ormore users U₁, U₂ . . . U_(n) of a first party P₁. In use, the centralserver 12 can wirelessly communicate with each of the user terminals 14via a network 16 to manage the first party P₁'s contact relationships.As described in more detail below, the central server 12 facilitatescommunications between one or more users U₁, U₂ . . . U_(n) of a firstparty P₁ and one or more contacts C₁, C₂ . . . C_(n) of a second partyP₂, for example, via one or more contact terminals 15. As user herein, a“contact” can be an employee of the second party P₂.

Each of the plurality of user terminals 14 can be, for example, acellular phone, a tablet, a personal computer, or another electronicdevice. Here, the plurality of user terminals 14 includes a first userterminal 14 a, a second user terminal 14 b, and an nth user terminal 14n. Each user terminal 14 can be controlled by a distinct user U₁, U₂ . .. U_(n) (e.g., a first user U₁ controls the first user terminal 14 a, asecond user U₂ controls the second user terminal 14 b, and an nth userU_(n) controls the nth user terminal 14 n). The user U₁, U₂ . . . U_(n)of each user terminal 14 can be, for example, a member or employee ofthe first party P₁. As used herein, each of the users U₁, U₂ . . . U_(n)can also be referred to generally as a user U.

Likewise, each of the plurality of contact terminals 15 can be, forexample, a cellular phone, a tablet, a personal computer, or anotherelectronic device. Here, the plurality of contact terminals 15 includesa first contact terminal 15 a, a second contact terminal 15 b, and annth contact terminal 15 n. Each contact terminal 15 can be controlled bya distinct contact C₁, C₂ . . . C_(n) (e.g., a first contact C₁ controlsthe first contact terminal 15 a, a second contact C₂ controls the secondcontact terminal 15 b, and an nth contact C_(n) controls the nth contactterminal 15 n). The contact C₁, C₂ . . . C_(n) of each contact terminal15 can be, for example, a member or employee of the second party P₂. Asused herein, each of the contacts C₁, C₂ . . . C_(n) can also bereferred to generally as a contact C.

The first party P₁ can include a single user U or group of users U₁, U₂. . . U_(n) that desire to communicate with and/or provide content ofinterest to a single contact C or one or more contacts C₁, C₂ . . .C_(n) of the second party P₂. Although a single first party P₁ and asingle second party P₂ are discussed herein for simplicity, it should beunderstood from this disclosure that the system 10 can operate tosupport any number of such parties and significantly decreases timespent on such communications as the number of parties increases. Contentof interest to be provided to the second party P₂ can be obtained fromone or more content sources 18 in communication with the central server12 via one or more network 16. For example, the content sources 18 caninclude any of a number of commercially available third-party newssources accessible through known application protocol interfaces (APIs)for such news sources. For example, in the category of generalbusiness-related news, such content sources 18 can include services likeBloomberg, Financial Times, Wall Street Journal, New York Times, etc.The content sources 18 can also include other non-business contentsources or more domain-specific content sources. Alternatively oradditionally, content of interest can originate in a non-public databasemaintained by the first party P₁.

The user terminals 14 and contact terminals 15 can communicate with thecentral server 12 via various communication protocols, for example, viaan Internet Protocol Suite or TCP/IP supporting HTTP. The network 16 cancomprise a public network (e.g., the Internet, World Wide Web, etc.), aprivate network (e.g., local area network (LAN), etc.), and/orcombinations thereof (e.g., a virtual private network, LAN connected tothe Internet, etc.). The network 16 can include a wired network, awireless network, and/or a combination of the two.

The central server 12 can comprise one or more server computers,database servers and/or other types of computing devices, particularlyin connection with, for example, the implementation of websites and/orenterprise software. The central server 12 can further comprise acentral processor 20 and a central memory 22. The central processor 20is configured to execute instructions programmed into and/or stored bythe central memory 22. As described in more detail below, the steps ofthe methods described herein can be stored as instructions in thecentral memory 22 and executed by the central processor 20.

In the illustrated embodiment, the central memory 22 can include a webinterface 24, a database 26, and back end processing instructions 28.Here, the web interface 24, the database 26, and the back end processinginstructions 28 can be controlled or accessed by the central processor20 implementing appropriate software programs by executing the back endprocessing instructions 28 or other instructions programmed into and/orstored by the central memory 22.

The web interface 24 can provide a graphical user interface (“GUI”) 25that can be displayed on a terminal 14 for a user U, and can manage thetransfer of data received from and sent to the GUI 25 on the terminal14. For example, the GUI 25 can be employed by a user U to enter dataabout the second party P₂ or individual contacts C, to provide such datato the central server 12, and/or to present potential communications toone or more users U of the first party P₁, as described in more detailbelow. In an embodiment, each user terminal 14 can include anapplication A comprising software downloaded to and executed by theterminal 14 to provide the GUI 25 and to manage communications with thecentral server 12. The application A can be downloaded to the userterminal 14 from the central server 12 or from some other source such asan application distribution platform.

The database 26 can store data relevant to the second party P₂, as wellas data concerning the identification and processing of content from thecontent source(s) 18. In an embodiment, the database 26 can comprise adatabase management system (DBMS) operating on one or more suitabledatabase server computers. Alternatively, the database 26 can comprisestorage components from other systems, such as an existing relationshipmanagement tool having relevant data concerning the contact C and/orsecond party P₂ already stored therein. Examples of data pointsconcerning each tracked contact C and/or second party P₂ that can bestored in the database 26 include, but are not limited to: (i) firstnames of contacts C₁, C₂ . . . C_(n); (ii) the last names of contactsC₁, C₂ . . . C_(n); (iii) email addresses of contacts C₁, C₂ . . .C_(n); (iv) phone numbers of contacts C₁, C₂ . . . C_(n); (v) profilepicture of contacts C₁, C₂ . . . C_(n); (vi) start and end dates of anypast legal matters pertaining to the relationship between a user Uand/or first party P₁ and a contact C and/or second party P₂; (vii)number of past work matters in the relationship between a user U and/orfirst party P₁ and a contact C and/or second party P₂; (viii) a shortdescription of matter types worked on in the relationship between asuser U and/or first party P₁ and a contact C and/or second party P₂;(ix) interests or goals of a contact C and/or second party P₂; (x)corresponding weights for each of the interests or goals of a contact Cand/or second party P₂; (xi) dislikes of a contact C and/or second partyP₂; (xii) family members names of contacts C₁, C₂ . . . C_(n); (xiii)family members' interests; (xiv) relationships of the family members tocontacts C₁, C₂ . . . C_(n); (xv) significant events/data concerning acontact C and/or second party P₂; (xvi) one or more company name oralias for a second party P₂; (xvii) positions/titles of contacts C₁, C₂. . . C_(n) within a second party P₂; (xviii) divisions/departments ofcontacts C₁, C₂ . . . C_(n) within a second party P₂; (xix) the lengthof the relationship between a user U and/or first party P₁ and a contactC and/or second party P₂; and (x) other individuals or entities involvedin matters relationship between a user U and/or first party P₁ and acontact C and/or second party P₂.

The back end processing instructions 28 can be operatively coupled toboth the web interface 24 and the database 26, and can be programmedinto and/or stored by the central memory 22 and implemented by thecentral processor 20. In an embodiment, back end processing instructions28 can be executed by the central processor 20 to direct operations ofthe central server 12 as described below in further detail. For example,the central processor 20, executing the back end processing instructions28, can manage the receipt, storage, maintenance, etc. of relevant data(e.g., received from one or more user U of the first party P₁ via aterminal 14) concerning one or more contact and/or the second party P₂.Additionally, the central processor 20, executing the back endprocessing instructions 28, can develop similar data relevant to one ormore contact C and/or the second party P₂ based on information obtainedfrom the second party data sources 19 and/or existing second partydatabases 29. Similarly, the central processor 20, executing the backend processing instructions 28, can implement functions that identifyspecific relevant content from the content sources 18 that can beoptimal for presentation to one or more of the contact C and/or thesecond party P₂, as well as further functions discussed in more detailbelow.

FIG. 2 illustrates a representative diagram of an example embodiment ofa user terminal 14. As illustrated, a user terminal 14 can include aterminal processor 30 and a terminal memory 32. The terminal processor30 is configured to execute instructions programmed into and/or storedby the terminal memory 32. The instructions can be received from and/orperiodically updated by the web interface 24 of the central server 12 inaccordance with the methods discussed below. As described in more detailbelow, many of the functions described herein can be stored asinstructions in the terminal memory 32 and executed by the terminalprocessor 30.

In an embodiment, the terminal processor 30 can comprise one or more ofa microprocessor, microcontroller, digital signal processor,co-processor or the like or combinations thereof capable of executingstored instructions 34 and operating upon stored user data 36, whereinthe instructions 34 and/or stored user data 36 are stored by theterminal memory 32. Likewise, the terminal memory 32 can comprise one ormore devices such as volatile or nonvolatile memory, for example, randomaccess memory (RAM) or read only memory (ROM). Further still, theterminal memory 32 can be embodied in a variety of forms, such as a harddrive, optical disc drive, floppy disc drive, etc. In an embodiment,many of the processing techniques described herein are implemented as acombination of executable instructions 34 and data 36 stored within theterminal memory 32.

As illustrated, each of the plurality of user terminals 14 includes oneor more user input device 38, a display 40, a peripheral interface 42,one or more other output device 44, and a network interface 46 incommunication with the terminal processor 30. The user input device 38can include any mechanism for providing a user input to the terminalprocessor 30, for example, a keyboard, a mouse, a touch screen, amicrophone and/or suitable voice recognition application, or anotherinput mechanism. The display 40 can include any conventional displaymechanism such as a cathode ray tube (CRT), a flat panel display, atouch screen, or another display mechanism. Thus, as can be understood,the user input device 38 and/or the display 40 and/or any other suitableelement can be considered a GUI 25. The peripheral interface 42 caninclude the hardware, firmware, and/or other software necessary forcommunication with various peripheral devices, such as media drives(e.g., magnetic disk or optical disk drives), other processing devices,or another input source used as described herein. Likewise, the otheroutput device 44 can optionally include similar media drive mechanisms,other processing devices or other output destinations capable ofproviding information to a user of the user terminal 14, such asspeakers, LEDs, tactile outputs, etc. The network interface 46 cancomprise hardware, firmware and/or software that allows the terminalprocessor 30 to communicate with other devices via wired or wirelessnetworks 16, whether local or wide area, private or public. For example,such networks 16 can include the World Wide Web or Internet, or privateenterprise networks, or the like.

In various embodiments discussed herein, the user terminal 14 caninclude one or more user tracking device 48 configured to track and/orperiodically gather user data 36 regarding the user U of the userterminal 14. Such a tracking device can include, for example, a globalpositioning system (“GPS”) device 50, a digital calendar 52, and/oranother terminal-specific device which tracks movements and/or datausage by the user U of the user terminal 14. The GPS device 50 can beused, for example, to record past or present data regarding the physicallocation of the user terminal 14. The digital calendar 52 can be used,for example, to record past, present, or future data regarding the userU's schedule.

While the user terminal 14 has been described as one form forimplementing the techniques described herein, those having ordinaryskill in the art will appreciate from this disclosure that otherfunctionally equivalent techniques can be employed. For example, some orall of the functionality implemented via executable instructions canalso be implemented using firmware and/or hardware devices such asapplication specific integrated circuits (ASICs), programmable logicarrays, state machines, etc. Further, other implementations of the userterminal 14 can include a greater or lesser numbers of components thanthose illustrated. Further still, although a single user terminal 14 isillustrated in FIG. 2, it should be understood from this disclosure thata combination of such devices can be configured to operate inconjunction (for example, using known networking techniques) toimplement the methods described herein. It should also be understoodfrom this disclosure that the contact terminals 15 can include the sameelements as the user terminals 14.

In an embodiment, the system 10 illustrated in FIGS. 1 and 2 functionsas a tool to assist one or more user U and/or first party P₁ in managingrelationships with one or more of contact C and/or second party P₂. Amore detailed implementation of system 10 is further illustrated in FIG.3, which is a functional block diagram of structure for implementing thesystem 10 in accordance with the instant disclosure. By using the system10 in accordance with the techniques described herein, one or more userU can automatically contact one or more of the contact C₁, C₂ . . .C_(n) of a second party P₂ at optimal times and/or with optimized andup-to-date content of interest.

In an embodiment, the system 10 functions as a personal customerrelations management (CRM) system. Based on data from an existing secondparty database 29 (e.g., as found in a legacy CRM system or a contactintake system, accessible via the network 16) or via data provided bythe first party P₁, the central processor 20 can execute the back endprocessing instructions 28 to develop a basic profile 60 for a pluralityof contacts C₁, C₂ . . . C_(n) of a plurality of second parties P₂ basedon various types of data, for example, the types described above.Additionally, as described in greater detail below, the centralprocessor 20 can execute the back end processing instructions 28 toutilize the second party data sources 19 to develop a list of keywordsrelated to an individual contact C and/or the second party P₂ generally.For example, interests of a contact C and/or second party P₂ interestscan include their personal and/or professional interests. The centralprocessor 20 can assign weights to the interests to indicate theirimportance to an individual contact C and/or second party P₂ and/ortheir relevance to the industry of an individual contact C and/or secondparty P₂. In an embodiment, such weights can be assigned either manuallyor automatically depending on the nature of particular interest. In anembodiment, the weights can be assigned by at least one neural network65 which has been trained with other content of interest to the contactC and/or second party P₂, as discussed in more detail below. In anembodiment, personal interests (e.g., family, sports, food, hobbies,favorite destinations, etc.) are treated separately from professionalinterests. Professional interests are treated as things that relate to acontact C's work life and therefore can be beneficial for a user U ofthe first party P₁ to share in terms of gaining business from thecontact C and/or second party P₂. On the other hand, personal interestsare more relevant for relationship building as opposed to potentialbusiness leads. Thus, in terms of weighting, keywords pertaining toprofessional interests can be weighted heavier if they are found to bemore relevant to a contact C's work life, and therefore trends relatingto these words will be more applicable to the contact C and/or secondparty P₂. In an embodiment, central processor 20 automatically weightsprofessional interests. For example, and as further described below,keywords that are extracted from the description of a company can beused to obtain news content returning a collection of documents. Weightscan then be assigned to the keywords according to the magnitude of thevectors obtained from an inverse document frequency (tf-idf) algorithmperformed on the keywords and the collection of documents. For example,a tf-idf value can be generated for one or more keywords, wherein thetf-idf value increases proportionally to the number of times the keywordappears. The tf-idf value can then be converted to a numerical weight,for example, to a numerical value between 0 and 1.

In another embodiment, keywords pertaining to a contact C's personalinterests can be weighted by one or more user U of the first party P₁directly based on the user U's personal knowledge of the contact Cand/or the second party P₂. For example, if a contact C has a highaffinity for a local sports team, the user U can weight this higher thana restaurant the contact C has mentioned one or twice. Further,previously provided information about the second party P₂ can be updatedas needed. In an embodiment, the weights applied to personal interestscan be on the same numerical scale as the weights applied toprofessional interests. Alternatively, if the intention is to place morevalue on professional interests, then the weights applied to personalinterests can be on a smaller numerical scale as the weights applied toprofessional interests. For example, if the professional interests areweighted on a 0 to 1 scale (e.g., based on tf-idf values as discussedabove), the personal interests can be weighted on a 0 to 0.5 scale, withthe minimum scale value being the same for both professional andpersonal interests, but with the maximum scale value being higher forthe professional interests than the personal interests. If personalinterests are being valued more than professional interests, then theopposite scales can also be used. Those of ordinary skill in the artwill recognize from this disclosure that additional categories can alsobe included besides personal and professional interests.

In an embodiment, the central processor 20 can execute the back endprocessing instructions 28 to periodically suggest that one or more U ofa first party P₁ should contact one or more contact C of a second partyP₂. Generally, it is desirable to ensure that contacts with a particularcontact C of the second party P₂ are not too frequent, but to alsoensure that any content communicated to a contact C is not outdated. Inan embodiment, the following variables can be assessed for this purpose:(i) the time since the last automated communication, (ii) the age of therelationship, (iii) time since the last working engagement between theparties, and (iv) the relevance of potential content to be communicated.In an embodiment, each of these variables can assigned a value between aminimum and maximum value, here 0 and 1, inclusive, and each can begiven weights. In an embodiment, the time since the last workingengagement can be assigned a value (V_(T)) according to a linearrelationship with time until the value plateaus after X weeks.Similarly, the age of the relationship between the parties does not havea role in suggesting timing (i.e., has a 0 value) unless it is above Yyears in length. After the age of the relationship has reached Y yearsin length, the value (V_(A)) assigned to this variable can varysinusoidally over time until the occurrence of significant eventsbetween parties (e.g., the contact C's birthday), at which time thevalue is maximized. In an implementation, both the time since lastworking engagement and age of the relationship variables can be givenequal weights. The variable of time since last automated communication(V_(C)) can be calculated similarly to the time since last engagementvariable, although be weighted less (e.g., have a linear relationshipwith time until the value plateaus after X weeks). In an embodiment, thevalue (V_(F)) for the relevance of a particular piece of content can bescored on a scale of 0-1 based on its similarities relative to theweighted keywords, as described above.

Based on these example variables, the central server 12 can assesswhether a given piece of identified content should be flagged forcommunication to one or more contact C of a second party P₂. In anembodiment, the central server 12 can perform a first calculation toassess whether a given piece of identified content should be flagged forpotential communication. In particular, the values of the first threevariables (time since the last working engagement (V_(T)), age of therelationship (V_(A)), and time since the last automated communication(V_(C))) can be summed in the first calculation to calculate a value(V_(S)) above a minimum threshold and/or below a maximum threshold.Here, with V_(T), V_(A), and V_(C) being between 0 and 1, the sum valueV_(S) will be above a minimum value of 0 and below a maximum value of 3.Thus, for example, the value V_(S) can be calculated as follows:

V _(S) =V _(T) +V _(A) +V _(C)  (Equation 1).

In an embodiment, the central server 12 will retrieve content forpotential communication unless V_(S) is above a minimum threshold.Alternatively, the central server 12 can continue when the relevance ofthe content outweighs the timing of the communication.

The central server 12 can then perform a second calculation whichincorporates the value (V_(F)) for the content's relevance to one ormore contact C and/or second party P₂. In an embodiment, the sum value(V_(S)) from Equation 1 can be multiplied by the value (V_(F)) for thecontent's relevance to determine a resulting value (V). Thus, forexample, the value V can be calculated as follows:

V=V _(S) ×V _(F)  (Equation 2).

Alternatively, Equations 1 and 2 can combined into a single calculationas follows:

V=V _(F)(V _(T) +V _(A) +V _(C))  (Equation 3).

It should further be understood from this disclosure that additionalvariables can also be included in the calculation to further optimizethe equation for accurate results. Further, the Equations disclosedabove are examples only, are not intended to be limiting, and can beadjusted to achieve the values V_(S) and/or V in other ways whichdetermine a numerical value that takes into account the timing and/orrelevance. In an embodiment, at least one neural network 65 can developalternative algorithms based on content known to be of interest to acontact C and/or second party P₂.

Using the above equations, if the resulting value V is over a minimumthreshold value (e.g., 2 in this example), then the conditions aresatisfied for flagging the particular piece of content for communicationto one or more contact C of the second party P₂ and generating asuggested communication as discussed below. In this manner, particularlyrelevant content can serve as the basis for a potential communicationeven if the temporally-based variables do not indicate a strong need forsending a communication. On the other hand, comparatively less relevantcontent can nonetheless be flagged as the basis for a potentialcommunication when the temporally-based variables indicate a greaterneed to reach out to the contact C. In practice, the values of the X andY thresholds noted above can be set (e.g., by at least one neuralnetwork) through machine learning analysis of the acceptance and/orrejections of suggested communications by the contact C and/or secondparty P₂. In this manner, the system 10 can tailor the frequency ofcommunications to the desires of the user U and/or contact C as theprocess is repeated.

Further still, the central processor 20 can execute the back endprocessing instructions 28 to interface with the user U's digitalcalendar 52 (as maintained, for example, by a user terminal 14) todetermine when an interaction with one or more contact C of the secondparty P₂ is about to or has already occurred, so that previouslycaptured interests can be suggested as talking points for upcominginteractions, and/or additional interests that the user U gleaned from arecently completed interaction can be captured. For example, withknowledge of an upcoming meeting with a given contact C obtained fromthe user U's digital calendar 52, the central processor 20 can send theuser U's terminal 14 a reminder before the meeting reminding the user Uof recent/relevant (based on weight) interest information. Additionally,with knowledge that a meeting between the user U and the contact Crecently ended according to the user U's digital calendar 52, thecentral processor 20 can send the user U's first terminal 14 anotification requesting the user U to enter any new interest informationthat can have been learned during the recent meeting. In this way,interests discovered during a recent meeting can be weighed more heavilyduring a content analysis as discussed herein.

FIG. 3 illustrates an example embodiment of a functional block diagramof the system 10 according to the present disclosure. In particular, andin addition to the user functions described above, FIG. 3 illustratesvarious functions implemented by the central processor 20 whileexecuting the back end processing instructions 28.

In the illustrated embodiment, the central processor 20 creates andmaintains a plurality of contact profiles 60 within the database 26 byexecuting the back end processing instructions 28. In FIG. 3, only onecontact profile 60 is shown, but it should be understood from thisdisclosure that the central processor 20 can create and maintain aplurality of contact profiles 60 for a plurality of contacts C eitherwithin the same second party P₂ or from multiple different secondparties P₂. By way of non-limiting example, and in the context of thelegal profession, the user U of the user terminal 14 can be an attorneyin private practice having relationships with various other attorneys orcontacts (e.g., contacts C₁, C₂ . . . C_(n)) at contact organizations,other private practice firms, foreign counsel, etc. (e.g., secondparties P₂). The first party P₁ can be the user U's law firm and caninclude a plurality of other users U₁, U₂ . . . U_(n) having individualuser terminals 14.

Here, each contact profile 60 can include one or more records 62, storedin the database 26, having different types of data, as described above,corresponding to the contact C and/or the second party P₂. For example,and continuing with the legal profession scenario, in the illustratedembodiment the contact profile 60 can comprise data 62 separated intocategories of professional data 62 a, personal data 62 b, and legal data62 c pertinent to each second party P₂. In this example, theprofessional data 62 a can document data concerning the contact C'semployer, industry, specific role with that employer or within thatindustry, etc.; the personal data 62 b can document data concerning thecontact C's personal information such as full name, birthday, familymembers, hobbies, likes, dislikes, etc.; and the legal data 62 c candocument data concerning the user U's and/or first party P₁'s past legalengagements with the particular contact C and/or second party P₂. Here,the professional data 62 a, personal data 62 b and/or legal data 62 c(each potentially including extracted keywords as described herein) canserve as a basis for performing searches at the content sources 18 toidentify potentially relevant content 66 for the client C and/or secondparty P₂. It should be appreciated from this disclosure that furtherexamples of specific data types can be incorporated into theprofessional data 62 a, personal data 62 b and legal data 62 c, or thatdifferent categories could be employed. For example, one or more of theprofessional data 62 a, personal data 62 b and/or legal data 62 c caninclude content known to be of interest to a client C and/or secondparty P₂ which can be used to train a neural network 65 to identifysimilar content.

The central processor 20 can build each profile 60 in a variety of ways,some of which are described in more detail below. In an embodiment, auser U can enter known data 62 about a contact C and/or second party P₂into a user terminal 14, which data 62 can then be saved by database 26.Here, if a user U enters data about a second party P₂, then that datacan also be saved to the profiles 60 of other contacts C₁, C₂ . . .C_(n) employed by the same second party P₂. The user U can also uploador link content known to be of interest to a client C and/or secondparty P₂ which can then be used to train a neural network 65 to identifysimilar content. Additionally, the central processor 20 can build theprofile by obtaining data from second party data sources 19 and/orexisting second party databases 29, as explained in more detail below.

Although a contact profile 60 is shown, the profile 60 can also begenerally for a second party P₂, and can relate to multiple contacts C₁,C₂ . . . C_(n) employed by the second party. When relevant content isdiscovered by the central processor 20 as described herein, the centralprocessor 20 can then determine which of the contacts C₁, C₂ . . . C_(n)would be optimal to receive the content. In an embodiment, the centralprocessor 20 can calculate at least one content score (S_(C)) for eachof the contacts C₁, C₂ . . . C_(n) of the second party P₂ usingprofessional data 62 a, personal data 62 b, legal data 62 c and/or otherdata for each contact C₁, C₂ . . . C_(n). For example, in an embodimentusing professional data 62 a and personal data 62 b, a content score(S_(C)) can be calculated as follows:

S _(C)=((V _(S) ×V _(F1))+(V _(S) ×V _(F2)))/n  (Equation 4).

Here, V_(F1) is a value for relevance to a contact's professionalinterests, and V_(F2) is a value for relevance to that contact'spersonal interests, and n is a number of interest categories beingconsidered (here, e.g., 2). V_(S) can be calculated, for example,according to the equations discussed above or similar derivative oralternative calculations. In this embodiment, since the contacts C₁, C₂. . . C_(n) may likely have similar or the same professional data 62 afrom having been employed by the same second party P₂, the personal data62 b used to calculate V_(F2) for each of the multiple contacts C₁, C₂ .. . C_(n) can be the determining factor as to which contact C₁, C₂ . . .C_(n) the central server recommends receives the identified content.

In an embodiment, the central processor 20 can execute the back endprocessing instructions 28 to implement one or more keyword extractionalgorithm 64 that can be used to develop, in this case, more data 62 forone or more profile 60. In FIG. 3, the central processor 20 hasimplemented a first keyword extraction algorithm 64 a for theprofessional data 62 a, a second keyword extraction algorithm 64 b forthe personal data 62 b, and a third keyword extraction algorithm 64 cfor the legal data 62 c. Each keyword extraction algorithm 64 can beused to analyze the content sources 18 and/or second party data sources19 to extract keywords that can be beneficial in identifying content ofrelevance to the second party 112. In another embodiment, the firstkeyword extraction algorithm 64 a, the second keyword extractionalgorithm 64 b, and the third keyword extraction algorithm 64 c can becombined into a single algorithm 64. In an embodiment, one or morekeyword extraction algorithm 64 can be developed by at least one neuralnetwork 65 using positive and/or negative examples of known contentrelevant to the client C.

FIG. 4 illustrates an example embodiment of a method 100 for developingand executing a keyword extraction algorithm 64 according to the presentdisclosure. Some or all of the steps of method 100 can be stored asinstructions on the central memory 22 and/or one or more terminal memory32 and can be executed by the central processor 20 and/or one or moreterminal processor 30 in accordance with the respective instructionsstored on the central memory 22 and/or one or more terminal memory 32.It should be understood that some of the steps described herein can bereordered or omitted without departing from the spirit or scope ofmethod 100.

Beginning at step 102, a user U logs into a user terminal 14 andaccesses the system 10 to create or edit a profile 60. The profile 60can be for a contact C and/or more generally for a second party P₂. Thatis, the user U can create or edit a profile 60 for a particular contactC of the second party P₂, or the user U can create or edit a profile 60for a particular second party P₂, which can apply to multiple contactsC₁, C₂ . . . C_(n) employed by the second party P₂.

In an embodiment, users U₁, U₂ . . . U_(n) of the same first party P₁can have differing levels of access for entering and/or editing client Cand/or second party P₂ information. For example, one or more user U₁, U₂. . . U_(n) with top level access can be allowed to create or editprofiles 60, while other users U₁, U₂ . . . U_(n) can merely perform asearch as described below. Alternatively, the user U creating a profile60 can be allowed to edit that profile 60, while other users U₁, U₂ . .. U_(n) can merely perform a search as described below.

At step 104, the central processor 20 executes the back end processinginstructions 28 to search the database 26 for information related to theclient C and/or second party P₂. If the database 26 already containsprevious data regarding the client C and/or second party P₂, which forexample can be saved as one or more category of data 62, the system 10can in an embodiment develop relevant keywords from the previous data atstep 106 and thereafter access the content sources 18 at step 120. Forexample, the central processor 20 can identify repeated keywords relatedto the client C and/or second party P₂ and thereafter determine theimportance of the keywords based on the number of repetitions.Alternatively, the information within the database 26 can alreadyinclude keywords related to the client C and/or second party P₂ whichhave been verified to be accurate by at least one user U of the firstparty P₁. Alternatively or additionally, at least one neural network 65can be used to identify keywords and/or corresponding algorithms.

In another embodiment, the central processor 20 can access the previousdata to develop an initial set of keywords, and then allow further datato be input by the user U at step 108 or move on to step 110. Here, thecentral server 12 can also automatically access existing second partydatabase 29 from outside servers to search for data from outside sourcesregarding the client C and/or second party P₂. When informationregarding the client C and/or second party P₂ is found, the centralserver 12 can update the previous data regarding the client C and/orsecond party P₂.

At step 108, the user U can input data regarding the contact C and/orsecond party P₂ via the GUI 25 of a user terminal 14. In an embodiment,the user U can enter initial keywords regarding the contact C and/orsecond party P₂ which can then be saved in the database as professionaldata 62 a, personal data 62 b, and/or legal data 62 c depending on thetype of data entered. The user U can also enter information about thesecond party P₂, which information can then be applied to theprofessional data 62 a and/or legal data 62 c of a plurality ofdifferent profiles 60 for a plurality of different contacts C₁, C₂ . . .C_(n) employed by the second party P₂. The user U can also upload orlink content known to be of interest to a client C and/or second partyP₂ which can then be used to train a neural network 65 to identifysimilar content. In an embodiment, the central processor 20 canimplement the back end processing instructions 28 to take the user'sentered keywords and develop additional keywords with the same orsimilar meaning. At this time, the user U can also enter weights fordifferent keywords or interests, for example, by ranking the keywords orinterests on a numerical or sliding scale based on the user'sunderstanding of the client C and/or second party P₂. In an embodiment,the weights can then be converted by the central processor 20 into anumerical value on a different scale (e.g., a 0 to 1 scale).

In an embodiment, the data input can be accomplished by enabling thecentral server 12 to access the digital calendar 52 of the user terminal14 and/or emails between the contact C and the user U as saved on theuser terminal 14 or another location. For example, if the user U has metwith the contact or exchanged emails having descriptions involvingprofessional, personal, or legal interests, then the central server 12can access and save those descriptions to the database 26. Here, thecentral server 12 can scan those descriptions and pull keywords that maybe of interest to the client C. In an embodiment, the proposed keywordsfrom the digital calendar 52 and/or email correspondence can bepresented to the user U via the user terminal 14 and verified and/orweighted by the user U before progressing to the next step of method100.

At step 110, the central server 12 can access the second party datasources 19 to search for data regarding the contact C and/or secondparty P₂. The second party data sources 19 can include, for example, oneor more social media profile of the contact C, one or more social mediaprofile of the second party P₂, the second party P₂'s official website,and/or outside new articles written about the contact C and/or secondparty P₂. In an embodiment, the central server 12 can perform a publicsearch of the second party data sources 19 using the name of the contactC and/or second party P₂ as a keyword. In another embodiment, thecentral server 12 can perform a public search by combining thisinformation with other data input by the user U at step 108. Forexample, “LinkedIn” is a well-known social network for businessprofessionals, and an API for the “Linkedin” social network can be usedby the central server 12 to search for information regarding the contactC and/or second party P₂. Of course, it should be appreciated from thisdisclosure that other similar data sources can also be employed for thispurpose. Certain social media platforms known for professional orpersonal data can be known to the central server 12 and used to collectprofessional data 62 a or personal data 62 b, respectively.

At step 112, presuming that the central server 12's search located thecontact C and/or second party P₂ within one or more second party datasource 19, one or more textual description of the contact C and/orsecond party P₂ can be retrieved. For example, the descriptions caninclude summaries listed on one or more social media profile of thecontact C, one or more social media profile of the second party P₂, thesecond party P₂'s official website, and/or outside new articles writtenabout the contact C and/or second party P₂. In an embodiment, thecentral server 12 can conserve storage space and processing power bycondensing the descriptions by removing unneeded words such as commongrammatical terms. Here, the central server 12 can further separate thedescriptions into professional data 62 a, personal data 62 b, and/orlegal data 62 c. For example, data from the second party P₂'s website orsocial media account can be saved in the database 26 as professionaldata 62; data from the contact's personal social media account can besaved in the database 26 as personal data 62 b; and data from the firstparty P₁'s own databases (e.g., in the law firm scenario) such as fromsuch as from the existing second party database 29 can be saved in thedatabase 26 as legal data 62 c.

In an embodiment, the central server 12 can be trained or programmedprior to performing step 112 to distinguish professional and personalwebsites based on historical information and the intent of thosewebsites. For example, the central server 12 can be programmed ortrained to identify certain social media websites as being used more forpersonal or professional reasons. Central server 12 can further betrained or programmed to identify certain words as relating to businessor personal interests. For example, names of sports teams within aprofile would likely relate to personal interests, whereas names ofvendors would likely relate to professional interests. In an embodiment,the user U can be prompted via the GUI 25 of a user terminal 14 tocategorize certain keywords determined during step 112.

At step 114, the saved input data from step 108 and/or the saved publicdata from step 112 can be processed by the central processor 20according to a pretrained model executed according to the back endprocessing instructions 28. The pretrained model can be trained, forexample, by using machine learning training which utilizes knowndescriptions along with expected keyword outputs from the knowndescriptions (e.g., via at least one neural network). For example, inone embodiment, an entity recognizer that has been trained on manuallylabeled data from the English language can be employed to identify namedentities (e.g., people, organizations, products, laws, events, locationsand building names) in the textual descriptions, which identified entitynames can then be treated as keywords. Further keyphrases (as opposed toindividual keywords) can be identified according to rules applied to thepreviously-identified named entities. For example, the followingstructural combinations can be used to identify further keyphrases: anamed entity noun followed by the word “company,” a named entity nounfollowed by the word “industry,” or an adjective followed by a namedentity noun or a verb followed by a named entity noun (as in the case ofa phrase indicating a named entity's actions). Additionally, the method100 can be performed based on personal or legal data. For example, thecontact C's residential town or city (as might be found in the personaldata 62 b) could be treated in the same manner as the second party P₂'scompany. Alternatively, a named litigant from a legal matter identifiedin the legal data 62 c can be processed in this manner to developfurther insight into the second party P₂.

At step 116, the central processor 20 can execute the back endprogramming instructions 28 to output generic combinations of wordsbased on the specified definition of a keyword at step 114. In anembodiment, the central processor 20 can use natural language processingto output the generic combinations of words. In an embodiment, thecentral processor 20 can transmit the generic combinations of words backto the user terminal 14 for the user U to at least one of: (i) confirmthat the word combinations relate to the contact C and/or second partyP₂; (ii) specify whether the combinations relate to one of a pluralityof categories such as professional data 62 a, personal data 62 b, and/orlegal data 62 c; and/or (iii) weight or rank the combinations of wordsbased on perceived importance to the contact C and/or second party P₂.

At step 118, the central processor 20 can execute the back endprogramming instructions 28 to extract keywords from the combinations ofwords determined at step 116. The keywords can be based, for example, onpredetermined relationships between keywords and phrases, on the numberof times different terms or phrases show up amongst the previouslydetermined combinations, and/or on the user U's input before or afterviewing the previously determined combinations. Here, the keywords canalso be categorized, for example, as professional data 62 a, personaldata 62 b, and/or legal data 62 c, or in a number of other categories.In an embodiment, the central processor 20 can transmit the keywordsback to the user terminal 14 for the user U to at least one of: (i)confirm that the keywords relate to the contact C and/or second partyP₂; (ii) specify whether the keywords relate to one of a plurality ofcategories such as professional data 62 a, personal data 62 b, and/orlegal data 62 c; and/or (iii) weight or rank the keywords based onperceived importance to the contact C and/or second party P₂. Using thisdata, the central processor can create one or more keyword extractionalgorithm 64 capable of highlighting content with correspondingkeywords.

In an embodiment, keywords or combinations of words relating to thesecond party P₂ can also be saved within database 26 to the profiles 60of other contacts C₁, C₂ . . . C_(n) employed by the same second partyP₂. For example, professional data 62 a and/or legal data 62 c of asecond party P₂ can in some embodiments equally apply to all C₁, C₂ . .. C_(n) employed by the same second party P₂. In this way, the profilesof various contacts C employed by the same second party P₂ remain up todate and consistent with each other.

At step 120, the central server 12 accesses the content sources 18 usingat least one keyword extraction algorithm 64 for the contact C and/orsecond party P₂. Here, the content sources 18 can include any of anumber of commercially available news sources, non-business contentsources, domain-specific content sources, or any other sources withinformation that could be of interest to the contact C and/or secondparty P₂. In an embodiment, the central server 12 can also search thecentral memory 22 for content created by the first party P₁, which maynot be publicly accessible content.

Returning to FIG. 3, after accessing the content sources 18, the centralserver 12 can identify content 66 determined to be relevant to thecontact C and/or second party P₂ based on the one or more keywordextraction algorithm 64. The identified content 66 can be determined tobe relevant, for example, based on the importance of the keywords asdetermined by the user U and/or first party P₁. The central controller20 can assign each piece of identified content a numerical value. In anembodiment, the numerical value can be determined by Equations 1, 2,and/or 3 discussed above, or derivatives or alternatives thereof (e.g.,as developed by at least one neural network). Here, when the numericalvalue for more than one content source 18 includes identified content 66that meets a minimum threshold, the central server 12 can rank theidentified content 66 according to presumed interest to the contact Cand/or second party P₂. For example, to limit the user U to a singlecommunication to the contact C, the central server 12 can narrow aplurality of potentially relevant identified content 66 to only the mostrelevant or applicable content to the contact C. Here, the centralserver 12 can automatically narrow the identified content 66 based onweightings applied to the keywords, or the user U can be presented viathe GUI 25 of the user terminal 14 with a ranked list of identifiedcontent 66, from which the user U can choose which identified content 66to send to the contact. The identified content 66 can be saved withindatabase 26, for example, in the form of links to the actual digitalcontent at the respective content sources 18. The identified content 66can be saved in database 26 for further processing. Additionally, theidentified content 66, though shown as separate element in FIG. 3, canbe included in or otherwise associated with profile 60.

In an embodiment, each discrete identified content element can be rankedaccording to weighting applied to the search terms (e.g., keywords) usedto identify that particular content. For example, keywords pertaining toa second party P₂'s company can be more heavily weighted than keywordsconcerning personal aspects of the individual contacts C₁, C₂ . . .C_(n) of the second party P₂. Thus, a particular content element that ismore strongly identified with a company-related keyword (as determined,for example, by a frequency of occurrence metric) will be deemed morerelevant as opposed to another content element that is more stronglyidentified with a personal-related keyword. Alternatively, a contact C'spersonal interest can outweigh professional interests if a user U has apersonal relationship with the contact C. The weights can be set by theuser U and/or first party P₁ on a case-by-case basis, or can be set forall contacts C and/or second parties P₂ using the same global rules.

Additionally, or in an alternative embodiment, the central memory 22 caninclude at least one neural network 65 which can be trained to locaterelevant content for a particular user U and/or client C and flag therelevant content as identified content 66. Here, the neural network 65can be trained using one or more previously identified pieces of contentidentified by the user U to be relevant to a client C and/or secondparty P₂. Through the training process, the neural network 65 detectspatterns within the content which the neural network 65 can then searchfor when accessing the content source 18 for new content. The neuralnetwork 65 can also continuously train based on whether the user Uapproves or disapproves of new identified content 66 found by thecentral server 12 each time the content sources 18 are searched. Thatis, if the user U agrees that the identified content 66 is relevant to aclient C and/or second party P₂, then the neural network 65 can use thatidentified content 66 as a positive training example for searching foradditional content. If the user U rejects the identified content 66 asbeing relevant to a client C and/or second party P₂, then the neuralnetwork 65 can use that identified content 66 as a negative trainingexample for searching for additional content. In this way, the neuralnetwork 65 is continuously trained using examples of what type ofcontent is desirable and undesirable. Using this training, the neuralnetwork 65 can build and continuously update an algorithm for findingrelevant content. The numerical value assigned to content as discussedabove, for example, can further be based on the algorithm continuouslydeveloped by the neural network 65.

The central server 12 can further create a suggested communication 68using one or more of the highest ranked identified content 66. Thecentral server 12 can create a suggested communication 68, for example,when a minimum threshold numerical value for the communication is metusing Equations 1, 2 and/or 3 discussed above or similar derivative oralternative calculations (e.g., as developed by at least one neuralnetwork). In an embodiment, the central server 12 can process aplurality of relevant content 66 according to the Equations 1, 2 and/or3 discussed above or similar derivative or alternative calculations, andcan either rank a plurality of suggested communications 68 based on theresulting numerical value, or can automatically save only one or more ofthe highest ranking suggested communications 68 for review by the userU.

In an embodiment, the central server 12 can further compose thesuggested communication 68 based on the type of identified content 66being transmitted by the suggested communication 68. For example, thecentral server 12 can determine the identified content 66 to beprimarily related to professional, personal, or legal data based on thekeyword extraction algorithms 64 discussed above. The central server 12can thereafter use this categorization to compose the suggestedcommunication 68 accordingly. For example, if the identified content 66is primarily related to professional keywords, the central server 12 cancompose a formal communication. On the other hand, if the identifiedcontent 66 is primarily related to personal keywords, the central server12 can compose a more informal communication. In this manner, theinstant disclosure serves to identify curated content likely to be ofparticular interest to the contact C and/or second party P₂.

In an embodiment, the central server 12 can use prior communicationswritten by the user U using the user terminal 14, and/or priorcommunications between the user U and the client C, to compose thesuggested communication 68 to be sent to the client C. Here, the centralmemory 22 can include at least one neural network 67 which can betrained to compose suggested communications 68 which have beenpersonalized a particular user U. The neural network 67 can be trained,for example, by using a plurality of prior communications between theuser U and the client C to learn the user U's writing style (e.g., wordchoice, sentence or paragraph length, nonce words, etc.). Through thetraining process, the neural network 67 detects patterns within the userU's communications that can then be repeated when composing suggestedcommunications. The neural network 67 can also continuously train basedon whether the user U approves or disapproves of new suggestedcommunications 68 each time a new suggested communication 68 isproposed. That is, if the user U agrees that the suggested communication68 is acceptable to send to a client C and/or second party P₂, then theneural network 67 can use that suggested communication 68 as a positivetraining example for composing additional communications. If the user Urejects the suggested communication 68 for being unacceptable to send toa client C and/or second party P₂, then the neural network 67 can usethat suggested communication 68 as a negative training example forcomposing additional communications. If the user U edits the suggestedcommunication 68, then the neural network 67 can use the edited versionas a positive training example for composing additional communications.In this way, the neural network 67 is continuously trained usingexamples communications approved or disapproved by the user U. Usingthis training, the neural network 67 can build and continuously updatean algorithm for compositing suggested communication 68.

Once the central server 12 has created a suggested communication 68, theweb interface 24 can cause the suggested communication 68 to bedisplayed on the GUI 25 of the user terminal 14 for a particular user U.The user U can then review the communication, and if acceptable, sendthe communication or approve of the communication being sent to thecontact C. For example, the suggested communication 68 can be anautomatically generated email, including a link to, or other form of,the identified content 66, that is presented to the user U on the GUI25. Thereafter, the user U can send the suggested communication 68as-is, modify the suggested communication 68 as desired, or even discardthe suggested communication 68. The user U may wish to modify thesuggested communication 68, for example, by adding a personal touch suchas a link to an upcoming webinar by the user U which is related to theidentified content 66. Alternatively, the central server 12 canautomatically send the suggested communication 68 to the contact Cwithout approval of the user U if certain thresholds have been met, forexample, using Equations 1, 2 and/or 3 discussed above or similarderivative or alternative calculations. In this embodiment, the user Ucan be notified of the automatically sent communication 68 in anydesirable manner, e.g., being cc'ed or bcc'ed on an email a notificationon the GUI 25 or any other suitable manner.

As discussed above, the user U's approval, disapproval and/or editing ofthe identified content 66 and/or suggested communication 68 can be usedto train at least one neural network 65 and/or at least one neuralnetwork 67. Here, if the user U specifies that the identified content 66is unacceptable, then the web interface 24 can relay this informationback to the neural network 65 for additional training. Likewise, if theuser U identifies that the suggested communication 68 is unacceptablethrough rejection or editing, then the web interface 24 can relay thisinformation back to the neural network 67 for additional training. Ifthe user U approves of the identified content 66 and/or suggestedcommunication 68, then the web interface 24 can relay this informationback to the neural network 65 and/or neural network 67 as a positiveexample for additional training. In this way, the neural networks arecontinuously trained using examples which have been approved ordisapproved by the user U. Additionally, the neural network 65 and/orneural network 67 can be trained based on the response to thecommunication by the contact C (e.g., whether the contact C responds tothe communication, and/or the positive or negative tone of the contactC's response.

In an embodiment, certain identified content 66 can be relevant tomultiple contacts C₁, C₂ . . . C_(n) employed by the same second partyP₂. Here, the central server 12 can calculate numerical values for eachof the multiple contacts C₁, C₂ . . . C_(n) to determine the bestcontact C to which the identified content is sent. The numerical valuescan be calculated, for example, according to the Equations 1, 2 and/or 3discussed above or similar derivative or alternative calculations. Inthis embodiment, since the contacts C₁, C₂ . . . C_(n) can have similarprofessional data 62 a and/or legal data 62 c from having been employedby the same second party P₂, the personal data 62 b for each of themultiple contacts C₁, C₂ . . . C_(n) can be the determining factor as towho the central server recommends receives the identified content.Alternatively, the identified content can be suggested to be sent tosome or all of the contacts C₁, C₂ . . . C_(n) meeting a minimumthreshold.

In an embodiment, the central server 12 can further identify aparticular user U of a plurality of users U₁, U₂ . . . U_(n) of a firstparty P₁ is best suited to send identified content 66 to one or morecontact C₁, C₂ . . . C_(n) of a second party. Here, the users U can alsohave their own professional, personal, and/or legal expertise savedwithin the database 26, which the central controller 20 can use toidentify an optimal user U for sending the identified content. Theoptimal user U can be determined by calculating a numerical value usingequations similar to or derivative of the calculations discussed herein,or can be identified based on previous contacts or an existingrelationship with a client C best suited to receive the identifiedcontent 66.

In an alternative embodiment, the central server 12 can create suggestedcommunications 68 from time to time even when the previously discussedconditions are not met. For example, if the central server 12 has accessto the GPS device 50, the digital calendar 52, and/or anotherterminal-specific device which tracks movements and/or data usage by theuser U of the user terminal 14, the central server 12 can use this datato generate appropriately timed suggested communications 68 from theuser U to the contact C. For example, if an upcoming meeting with thecontact C is listed in the user U's digital calendar 52, or if the userU has recently met with the contact C according to the digital calendar52, then the central server 12 can automatically generate a suggestedcommunication 68 based on the most relevant content at the time, even ifthe most relevant does not meet the minimum thresholds to normallygenerate suggested communications 68. In another example, if the GPSdevice 52 shows the user U to be located in a location that ispersonally, professionally, or legally of interest to a contact C and/ora second party P₂, then the central server 12 can generate a suggestedcommunication 68 at the time when the GPS device 68 indicates that theuser U is present in that location. A location could be professionallyof interest, for example, if that location contains a local office forthe contact C and/or the second party P₂. A location could be personallyof interest to a contact C, for example, if the contact C had previouslymentioned in an email as traveling to that location. In such cases, thesuggested communication 68 can be presented to the user 12 for approvalas discussed above.

In an embodiment, the system 10 operates continuously or periodically todiscover identified content 66 and generate suggested communications 68without input from a user. Then, when a user U logs into the system 10using a user terminal 14, the most relevant identified content 66 and/orsuggested communication 68 is readily available without furtherprocessing needed. Alternative, the user U can initiate the discovery ofidentified content 66 and/or the generation of a suggested communication68 by logging into the system 10 using a user terminal 14 and creating,editing, or viewing a particular profile 60 within the system 10.

FIG. 5 illustrates an exemplary GUI 25 for a particular contact C (“JohnDoe”) which can be accessed by a user U using a user terminal 14. Asshown, user-selectable buttons 72, 74, 76 are provided such that a userU can initiate prompts that facilitate the entry of legal data 62 c,profession data 62 a, and/or personal data 62 b, respectively.Additionally, a suggested communication button 78 is provided that, whenselected, causes the central server to either: (i) display a previouslydetermined suggested communication for the user U; or (ii) initiate themethods discussed above by accessing content sources 18, findingrelevant content 66 and/or generating the most optimal suggestedcommunication 68 at the time. Further, the illustrated example includessummary data and communication style tips 80 that further aid the user Uwhen sending a suggested communication 68. In an embodiment, the GUI 25can further include links, for example, to one or more social mediaprofile of the contact C, one or more social media profile of the secondparty P₂, the second party P₂'s official website, and/or outside newarticles written about the contact C and/or second party P₂.

The embodiments described herein provide improved systems and methodsfor identifying relevant content and automatically generating contactcorrespondence based thereon. By condensing the data using the variousmethods and calculations discussed herein, processing speeds can beincreased and memory space can be conserved. Particularly for largeorganizations managing hundreds of contacts, the systems and methodsenable relevant and optimized content to be communicated to relevantcontacts at optimal times, with processing speeds increased incomparison for searching for content, scheduling communication times,and personally generating communications. It should be understood thatvarious changes and modifications to the systems and methods describedherein will be apparent to those skilled in the art and can be madewithout diminishing the intended advantages.

GENERAL INTERPRETATION OF TERMS

In understanding the scope of the present invention, the term“comprising” and its derivatives, as used herein, are intended to beopen ended terms that specify the presence of the stated features,elements, components, groups, and/or steps, but do not exclude thepresence of other unstated features, elements, components, groups,integers and/or steps. The foregoing also applies to words havingsimilar meanings such as the terms, “including”, “having” and theirderivatives. Also, the terms “part,” “section,” or “element” when usedin the singular can have the dual meaning of a single part or aplurality of parts. Accordingly, these terms, as utilized to describethe present invention should be interpreted relative to a connectingdevice.

The term “configured” as used herein to describe a component, section orpart of a device includes hardware and/or software that is constructedand/or programmed to carry out the desired function.

While only selected embodiments have been chosen to illustrate thepresent invention, it will be apparent to those skilled in the art fromthis disclosure that various changes and modifications can be madeherein without departing from the scope of the invention as defined inthe appended claims. For example, the size, shape, location ororientation of the various components can be changed as needed and/ordesired. Components that are shown directly connected or contacting eachother can have intermediate structures disposed between them. Thefunctions of one element can be performed by two, and vice versa. Thestructures and functions of one embodiment can be adopted in anotherembodiment. It is not necessary for all advantages to be present in aparticular embodiment at the same time. Every feature which is uniquefrom the prior art, alone or in combination with other features, alsoshould be considered a separate description of further inventions by theapplicant, including the structural and/or functional concepts embodiedby such features. Thus, the foregoing descriptions of the embodimentsaccording to the present invention are provided for illustration only,and not for the purpose of limiting the invention as defined by theappended claims and their equivalents.

What is claimed is:
 1. A system for generating correspondence with oneor more contacts, the system comprising: a central server including atleast a processor and a memory, the central server configured tocommunicate with a user terminal and a plurality of content sources; theuser terminal configured to accept, from a user, at least one contactinput regarding at least one contact; the plurality of content sourcescontrolled by a plurality of third parties and including potentialcontent of interest to the contact; and the processor configured toexecute instructions stored on the memory to cause the central serverto: (i) determine at least one keyword relevant to the at least onecontact based on the at least one contact input; (ii) use the at leastone keyword to identify relevant content from the plurality of contentsources; (iii) calculate at least one value for the relevant content;and (iv) generate a suggested communication to be displayed for the useron the user terminal when the at least one value meets a threshold. 2.The system of claim 1, wherein the at least one contact input relates tothe at least one contact's professional or personal information.
 3. Thesystem of claim 1, wherein determining the at least one keyword includesgeneration of a keyword algorithm using the at least one keyword, andwherein identifying the relevant content includes applying the keywordalgorithm to the plurality of content sources.
 4. The system of claim 1,wherein calculating the at least one value includes performing acalculation using an input based on a time since last working engagementwith the at least one contact.
 5. The system of claim 4, wherein thetime since last working engagement is a variable which varies linearlywith time until reaching a maximum value.
 6. The system of claim 1,wherein calculating the at least one value includes performing acalculation using an input based on an age of relationship between theuser and the at least one contact.
 7. The system of claim 6, wherein theage of the relationship is a variable which varies sinusoidally overtime once a minimum threshold has been reached.
 8. The system of claim1, wherein the user terminal includes a digital calendar, and whereincalculating the at least one value includes performing a calculationusing an input based an amount of time since a communication between theuser and the at least one contact as determined from the digitalcalendar.
 9. The system of claim 1, wherein calculating the at least onevalue includes summing a plurality of variables based on a relationshipbetween the user and the at least one contact.
 10. The system of claim1, wherein calculating the at least one value includes multiplication ofa value based on weighted keywords.
 11. A method of generatingcorrespondence with one or more contact, the method comprising:determining at least one keyword relevant to at least one contact basedon at least one interest of the at least one contact; identifyingrelevant content from a plurality of content sources based on the atleast one keyword; calculating at least one value for the relevantcontent; and generating a suggested communication to be transmitted tothe at least one contact when the at least one value meets a threshold.12. The method of claim 11, wherein determining the at least one keywordincludes generating a keyword algorithm using the at least one keyword,and wherein identifying the relevant content includes applying thekeyword algorithm to the plurality of content sources.
 13. The method ofclaim 11, wherein calculating the at least one value includes using aninput based on a time since last working engagement with the at leastone contact, and wherein the time since last working engagement iscalculated using a variable which varies linearly with time untilreaching a maximum value.
 14. The method of claim 11, whereincalculating the at least one value includes using an input based on anage of relationship between the user and the at least one contact, andwherein the age of relationship is calculated using a variable whichvaries sinusoidally over time once a minimum threshold has been reached.15. The method of claim 11, wherein calculating the at least one valueincludes accessing a digital calendar and using an input based on thedigital calendar.
 16. The method of claim 11, wherein calculating the atleast one value includes summing a plurality of variables based on therelationship between the user and the at least one contact.
 17. Themethod of claim 11, wherein calculating the at least one value includesmultiplication of a value based on weighted keywords.
 18. A method ofdeveloping relevant content for one or more contact, the methodcomprising: receiving at least one input related to at least onecontact; accessing public information related to the at least onecontact; creating at least one keyword algorithm specific to the atleast one contact by processing the at least one input and the publicinformation using a pretrained model; identifying relevant content forthe at least one contact by examining a plurality of content sourcesusing the at least one keyword algorithm; and generating a suggestedcommunication to be transmitted to the at least one contact based on acalculation using at least one value determined based on the keywordalgorithm.
 19. The method of claim 18, wherein identifying the relevantcontent includes identifying a plurality of pieces of relevant content,and which further includes ranking the plurality of pieces of relevantcontent based on the calculation using the at least one value determinedbased on the keyword algorithm.
 20. The method of claim 18, whichincludes displaying the suggested communication on a user terminal, andenabling a user of the user terminal to edit and send the suggestedcommunication to the at least one client.